home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Tools & Utilities
/
Collection of Tools and Utilities.iso
/
edit
/
xvisrc.zip
/
VIRTSCR.H
< prev
next >
Wrap
C/C++ Source or Header
|
1992-07-28
|
3KB
|
85 lines
/* Copyright (c) 1990,1991,1992 Chris and John Downey */
/***
* @(#)virtscr.h 2.3 (Chris & John Downey) 9/4/92
* program name:
xvi
* function:
PD version of UNIX "vi" editor, with extensions.
* module name:
virtscr.h
* module function:
Definition of the VirtScr class.
* history:
STEVIE - ST Editor for VI Enthusiasts, Version 3.10
Originally by Tim Thompson (twitch!tjt)
Extensive modifications by Tony Andrews (onecom!wldrdg!tony)
Heavily modified by Chris & John Downey
***/
/*
* Type of an object whose pointers can be freely cast.
*/
#ifdef __STDC__
# define genptr void
#else
# define genptr char
#endif
typedef struct virtscr {
genptr *pv_window;
int pv_rows;
int pv_cols;
/* public: */
struct virtscr
*(*v_new) P((struct virtscr *));
void (*v_close) P((struct virtscr *));
int (*v_rows) P((struct virtscr *));
int (*v_cols) P((struct virtscr *));
void (*v_clear_all) P((struct virtscr *));
void (*v_clear_line) P((struct virtscr *, int, int));
void (*v_goto) P((struct virtscr *, int, int));
void (*v_advise) P((struct virtscr *, int, int, int, char *));
void (*v_write) P((struct virtscr *, int, int, char *));
void (*v_putc) P((struct virtscr *, int, int, int));
void (*v_set_colour) P((struct virtscr *, int));
int (*v_colour_cost) P((struct virtscr *));
void (*v_flush) P((struct virtscr *));
void (*v_beep) P((struct virtscr *));
/* optional: do not use if NULL */
void (*v_insert) P((struct virtscr *, int, int, char *));
int (*v_scroll) P((struct virtscr *, int, int, int));
void (*v_flash) P((struct virtscr *));
void (*v_status) P((struct virtscr *, char *, char *, long, long));
void (*v_activate) P((struct virtscr *));
} VirtScr;
#define VSrows(vs) ((*(vs->v_rows))(vs))
#define VScols(vs) ((*(vs->v_cols))(vs))
#define VSclear_all(vs) ((*(vs->v_clear_all))(vs))
#define VSclear_line(vs, row, col) ((*(vs->v_clear_line))(vs, row, col))
#define VSgoto(vs, row, col) ((*(vs->v_goto))(vs, row, col))
#define VSadvise(vs, r, c, i, str) ((*(vs->v_advise))(vs, r, c, i, str))
#define VSwrite(vs, row, col, str) ((*(vs->v_write))(vs, row, col, str))
#define VSputc(vs, row, col, c) ((*(vs->v_putc))(vs, row, col, c))
#define VSset_colour(vs, colour) ((*(vs->v_set_colour))(vs, colour))
#define VScolour_cost(vs) ((*(vs->v_colour_cost))(vs))
#define VSflush(vs) ((*(vs->v_flush))(vs))
#define VSbeep(vs) ((*(vs->v_beep))(vs))
#define VSinsert(vs, row, col, str) ((*(vs->v_insert))(vs, row, col, str))
#define VSscroll(vs, start, end, n) ((*(vs->v_scroll))(vs, start, end, n))